﻿using System;
using System.Text;

namespace _104_推荐使用的元组ValueTuple_元组
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建四元组
            ValueTuple<short, uint, ulong, string> a推荐 = ValueTuple.Create<short, uint, ulong, string>(60, 300, 5000000UL, "head");

            //使用StringBuilder类组装输出元组的信息，包括字段类型和具体内容 
            StringBuilder 输出业了 = new StringBuilder();
            输出业了.AppendLine("四元组：");
            输出业了.AppendFormat("{0}:{1}={2}\n", nameof(a推荐.Item1), a推荐.Item1.GetType().Name, a推荐.Item1);
            输出业了.AppendFormat("{0}:{1}={2}\n", nameof(a推荐.Item2), a推荐.Item2.GetType().Name, a推荐.Item2);
            输出业了.AppendFormat("{0}:{1}={2}\n", nameof(a推荐.Item3), a推荐.Item3.GetType().Name, a推荐.Item3);
            输出业了.AppendFormat("{0}:{1}={2}\n", nameof(a推荐.Item4), a推荐.Item4.GetType().Name, a推荐.Item4);

            //创建二元组
            ValueTuple<bool, byte> a推荐2 = ValueTuple.Create<bool, byte>(false, 100);

            输出业了.AppendLine("\n\n\n二元组：");
            输出业了.AppendFormat("{0}:{1}={2}\n", nameof(a推荐2.Item1), a推荐2.Item1.GetType().Name, a推荐2.Item1);
            输出业了.AppendFormat("{0}:{1}={2}\n", nameof(a推荐2.Item2), a推荐2.Item2.GetType().Name, a推荐2.Item2);

            //修改二元组中的数值
            a推荐2.Item2 = 50;
            输出业了.AppendFormat("\n修改后，{0}={1}", nameof(a推荐2.Item2), a推荐2.Item2);
            Console.WriteLine(输出业了);

        }
    }
}
